package com.gl.glbooks.vos;

import java.io.Serializable;
import java.util.Date;

import javax.persistence.CascadeType;
import javax.persistence.Entity;
import javax.persistence.FetchType;
import javax.persistence.GeneratedValue;
import javax.persistence.GenerationType;
import javax.persistence.Id;
import javax.persistence.OneToOne;
import javax.persistence.Temporal;


@Entity
public class Prestamo implements Serializable{

	private static final long serialVersionUID = 1L;
	@Id
	@GeneratedValue(strategy = GenerationType.AUTO)
	private Long id;
	@Temporal(javax.persistence.TemporalType.DATE)
	private Date fechaDesde;
	@Temporal(javax.persistence.TemporalType.DATE)
	private Date fechaHasta;
	@Temporal(javax.persistence.TemporalType.DATE)
	private Date fechaDeDevolucion;
	private EstadoPrestamo estadoPrestamo;
	@OneToOne(fetch=FetchType.EAGER, cascade=CascadeType.ALL)
	private Ejemplar ejemplar;
	@OneToOne(fetch=FetchType.EAGER)
	private Usuario usuario;
	private boolean prestamoIndefinido;
	
	public Long getId() {
		return id;
	}

	public void setId(Long id) {
		this.id = id;
	}
	
	public Date getFechaDesde() {
		return fechaDesde;
	}
	public void setFechaDesde(Date fechaDesde) {
		this.fechaDesde = fechaDesde;
	}
	public Date getFechaHasta() {
		return fechaHasta;
	}
	public void setFechaHasta(Date fechaHasta) {
		this.fechaHasta = fechaHasta;
	}
	public Date getFechaDeDevolucion() {
		return fechaDeDevolucion;
	}
	public void setFechaDeDevolucion(Date fechaDeDevolucion) {
		this.fechaDeDevolucion = fechaDeDevolucion;
	}
	public EstadoPrestamo getEstadoPrestamo() {
		return estadoPrestamo;
	}
	public void setEstadoPrestamo(EstadoPrestamo estadoPrestamo) {
		this.estadoPrestamo = estadoPrestamo;
	}
	public Ejemplar getEjemplar() {
		return ejemplar;
	}
	public void setEjemplar(Ejemplar ejemplar) {
		this.ejemplar = ejemplar;
	}
	public Usuario getUsuario() {
		return usuario;
	}
	public void setUsuario(Usuario usuario) {
		this.usuario = usuario;
	}

	public boolean isPrestamoIndefinido() {
		return prestamoIndefinido;
	}

	public void setPrestamoIndefinido(boolean prestamoIndefinido) {
		this.prestamoIndefinido = prestamoIndefinido;
	}
	
	
}
